(function() {
  var __hasProp = {}.hasOwnProperty,
    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };

  this.AdminAuthorListingModel = (function(_super) {

    __extends(AdminAuthorListingModel, _super);

    function AdminAuthorListingModel() {
      return AdminAuthorListingModel.__super__.constructor.apply(this, arguments);
    }

    AdminAuthorListingModel.ListingUrl = '';

    AdminAuthorListingModel.prototype.initialize = function() {
      if (AdminAuthorListingModel.ListingUrl.length === 0) {
        return AdminAuthorListingModel.ListingUrl = SiteMap.Admin.Authors.Listing;
      }
    };

    AdminAuthorListingModel.prototype.defaults = {
      Size: 10,
      Page: 1,
      Direction: 0,
      Authors: [],
      Column: "FirstName",
      Filter: {
        FirstName: '',
        LastName: ''
      }
    };

    AdminAuthorListingModel.prototype.url = function() {
      var url;
      url = AdminAuthorListingModel.ListingUrl;
      url += "?page=" + this.attributes.Page;
      url += "&size=" + this.attributes.Size;
      url += "&Column=" + this.attributes.Column;
      url += "&Direction=" + this.attributes.Direction;
      url += "&Filter.FirstName=" + this.attributes.Filter.FirstName;
      url += "&Filter.LastName=" + this.attributes.Filter.LastName;
      SiteMap.Admin.Authors.Listing = encodeURI(url);
      return SiteMap.Admin.Authors.Listing;
    };

    AdminAuthorListingModel.prototype.parse = function(response) {
      var attrs;
      attrs = {
        Size: response.Size,
        Page: response.Page,
        TotalPages: response.TotalPages,
        Column: response.Column,
        Direction: response.Direction,
        Filter: this.attributes.Filter
      };
      attrs.Authors = response.Authors;
      if (response.Filter.FirstName != null) {
        attrs.Filter.FirstName = response.Filter.FirstName;
      }
      if (response.Filter.LastName != null) {
        attrs.Filter.LastName = response.Filter.LastName;
      }
      return attrs;
    };

    return AdminAuthorListingModel;

  })(ListingModel);

}).call(this);
